package com.hbase;

import com.until.HBUtils;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author：YuanHaHa
 * @Date：2024/7/5 22:05
 */
public class PutMultipleTableData {
    public static Put EncapsulationDataToPutObject(String rowKey, String cf, String cn, String value) {
        // 创建 Put 对象
        Put put = new Put(Bytes.toBytes(rowKey));
        // 添加数据
        put.addColumn(Bytes.toBytes(cf), Bytes.toBytes(cn), Bytes.toBytes(value));
        // 返回 put 对象
        return put;
    }

    public static void main(String[] args) throws IOException {
        // 获取 Hbase 连接对象
        Connection connection = HBUtils.getConnection();
        // 获取 Table 对象
        Table personTable = connection.getTable(TableName.valueOf("Person"));
        // 用于存放封装成 Put 对象的list集合
        List<Put> puts = new ArrayList<>();

        for (int i = 1000 ; i <= 1040 ; i++){
            if(puts.size() >= 10){
                // 当数据达到10条的时候 将数据写入表中
                personTable.put(puts);
                // 清空集合
                puts.clear();
            }
            // 将数据封装成 put 对象
            Put put = EncapsulationDataToPutObject(i + "", "info01", "name", "maomao No." + i);
            // 添加进 put 集合
            puts.add(put);
        }

        // 释放连接
        HBUtils.release(connection, null);

    }
}
